1. Technical Field
This application relates to computer storage devices, and more particularly to the field of transferring data between storage devices.
2. Description of Related Art
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units (host adapters), disk drives, and disk interface units (disk adapters). Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
In some instances, it may be useful to provide data backup capability so that, in the event of a storage device failure, data may be recovered. Data backup capability may also be useful in instances where it is desirable to restore data to a previous state corresponding to the state of the storage device at a previous time. For example, after testing new software, it may be desirable to restore the storage device to a state that existed prior to the tests being performed. One way to provide backup capability is to simply make a complete copy of the data at specified times. However, if the time interval between copies is too long, then the ability to restore data to a particular time is affected since data may only be restored to the time of the most recent backup. For example, if data is completely backed up once every day, then it is only possible to restore data to a the state of a previous day. Providing more frequent complete backups may address this. However, since each complete backup requires additional storage, it may be impracticable to provide complete backups at too frequent a rate.
The problems associated with complete backups may be addressed, somewhat, by using incremental backups. In the case of incremental backups, an initial complete backup is performed. Following the complete backup, only data that has been modified since the last backup (incremental or complete) is save in each subsequent incremental backup. However, as the number of incremental backups increases, it becomes increasing complex to restore the data to a particular point since restoring data from an incremental backup requires first restoring the data from the complete backup and then applying each and every incremental backup until the desired state is reached. Thus, for example, if a complete backup is performed followed by two hundred incremental backups, then restoring the data to the state after the two hundredth incremental backup requires first performing a complete backup and then applying each and every one of the two hundred incremental backup, in sequence, until the desired state is reamed.
It is desirable to provide a solution that address the deficiencies of known backup techniques discussed above.